//台阶问题

#include

using namespace std;

//递归的实现

int func(int n){

if(n==1){

return 1;

}

if(n==2){

return 2;

}

for(int i=3;i<=n;i++){

return func(n-1)+func(n-2);

}

}

//递推的实现

int func1(int n){

if(n==1)

{

return 1;

}

if(n==2)

{

return 2;

}

int Prepre=1;

int pre=2;

int result=0;

for(int i=3;i<=n;i++)

{

result=Prepre+pre;

Prepre=pre;

pre=result;

}

return result;

}

int main(int argc, char** argv)

{

cout<<func(10)<<endl;

cout<<func1(10)<<endl;

return 0;

}